/*
    Weapon Type Data, stores Weapon Statistics, such as velocity, mass, damage, along with cooldown and enery costs
*/
#ifndef WEAPON_TYPE
#define WEAPON_TYPE

class Weapon; // Forward reference required for Weapon to be a friend of WeaponType

class WeaponType
{
    friend class Weapon; 
    public :

        WeaponType
        (
            char  *iPName,
            DarkImage *iPImage,
            double iVelocity,
            double iEnergyCost,
            double iEnergyTransferRate,
            int    iEnergyCap,
            double iCooldown,
            double iRadius,
            double iMass,
            double iDamage
        );
        
        ~WeaponType
        (
            void
        );
    private:
        
        string _name                ;
        DarkImage *_pImage          ; // Weapon's projectile sprite
        double _velocity            ; // 
        double _energyCost          ; // Per shot
        double _energyTransferRate  ; // Per tick
        double _energyCap           ; //
        double _cooldown            ; // ticks that have to pass between shots.
        double _radius              ; // collision radius
        double _mass                ; // 
        double _damage              ; // Impact damage of the projectile
};
#endif